WSL2嵌入式开发随笔(1)

您所在的位置:网站首页 xbox one 开发机 WSL2嵌入式开发随笔(1)

WSL2嵌入式开发随笔(1)

2023-03-12 03:21| 来源: 网络整理| 查看: 265

WSL2开发嵌入式linux时需要连接USB设备,比如连接USB读卡器等。但是WSL2本身不能像VM虚拟机一样直接进行USB连接切换,需要进行设置。这篇文章记录WSL2连接USB设备的这个设置过程。

参考资料:微软官方的文档,usbipd-win软件用于将连接到windows上的usb设备转接到wsl中。

WSL连接 USB 设备——Microsoft

usbipd-win

一、安装usbipd-win

点击上面的连接下载usbipd-win软件,软件后缀.msi可以直接安装。安装完成后usbipd软件会像系统添加环境变量,需要重启系统才能生效。

安装成功二、再wsl中安装usbip工具和硬件数据库

根据微软的文档输入如下命令运行失败,我的系统为:ubuntu22.04 内核版本5.15.79。

微软官方文档命令如下:

sudo apt install linux-tools-5.4.0-77-generic hwdata sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20

运行效果如下:

找不到这个包,上网找问题,找到了别人遇到了相同的问题,表示微软的文档写的不够严谨。

参考链接:https://github.com/microsoft/WSL/issues/7652

运行效果:

然后运行第二条命令,需要找到安装的包名称,用自己的包名称替换微软提供的命令中的包名称。

三、使用usbipd命令进行测试

我使用一个读卡器进行测试,插入读卡器,在powershell中输入usbipd wsl list列出所有的usb设备信息。

需要注意的信息是BUSID为4-1,状态STATE为Not attached。

打开wsl的命令行,输入lsusb查看usb设备,此时是没有读卡器连接上的。

切换到powershell中输入,usbipd wsl attach --busid 4-1命令将读卡器连接到wsl中,4-1就是读卡器的BUSID,这个需要根据自己的实际情况进行输入。再次在wsl中输入lsusb查看usb设备,可以看到读卡器已经被识别了。

如果想要断开usb设备和wsl的连接,可以直接拔出设备,也可以使用命令usbipd wsl detach --busid 4-1断开wsl的连接。

四、挂载不上USB读卡器

昨天成功的让我的读卡器连接上了wsl,今天正准备编译uboot然后烧进去,结果在/dev/sd*下根本没有我的读卡器设备。又是去找资料,没想到wsl的内核里面竟然没有usb块设备的驱动,微软真是有你的。简直白忙活,这个wsl开发嵌入式还真是『依托答辩』。

五、编译WSL2内核

根据网络上的资料,git clone了wsl2-kernel过来自己编译,加入了USB块设备的驱动,然后用自己编译的内核启动wsl,最终终于是把我的读卡器识别出来了。不容易。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3